package com.danciyixue.boot.dcyx.service;

import com.danciyixue.boot.dcyx.model.entity.Semester;
import com.danciyixue.boot.dcyx.model.form.SemesterForm;
import com.danciyixue.boot.dcyx.model.query.SemesterQuery;
import com.danciyixue.boot.dcyx.model.vo.SemesterVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 学期信息服务类
 *
 * @author youlaitech
 * @since 2025-06-15 16:25
 */
public interface SemesterService extends IService<Semester> {

    /**
     *学期信息分页列表
     *
     * @return {@link IPage<SemesterVO>} 学期信息分页列表
     */
    IPage<SemesterVO> getSemesterPage(SemesterQuery queryParams);

    /**
     * 获取学期信息表单数据
     *
     * @param id 学期信息ID
     * @return 学期信息表单数据
     */
     SemesterForm getSemesterFormData(Long id);

    /**
     * 新增学期信息
     *
     * @param formData 学期信息表单对象
     * @return 是否新增成功
     */
    boolean saveSemester(SemesterForm formData);

    /**
     * 修改学期信息
     *
     * @param id   学期信息ID
     * @param formData 学期信息表单对象
     * @return 是否修改成功
     */
    boolean updateSemester(Long id, SemesterForm formData);

    /**
     * 删除学期信息
     *
     * @param ids 学期信息ID，多个以英文逗号(,)分割
     * @return 是否删除成功
     */
    boolean deleteSemesters(String ids);

}
